home *** CD-ROM | disk | FTP | other *** search
- OPT MODULE
- OPT PREPROCESS
-
- EXPORT PROC crcchecksum(mem:PTR TO CHAR,len,crc=0)
-
- /*
- * updcrc macro derived from article Copyright (C) 1986 Stephen Satchell.
- * NOTE: First argument must be in range 0 to 255.
- * Second argument is referenced twice.
- *
- * Programmers may incorporate any or all code into their programs,
- * giving proper credit within the source. Publication of the
- * source routines is permitted so LONG as proper credit is given
- * to Stephen Satchell, Satchell Evaluations and Chuck Forsberg,
- * Omen Technology.
- */
-
- MOVEM.L D1-D7/A0-A6,-(A7)
- MOVE.L mem,A0
- MOVE.L len,D3
- MOVE.L crc,D2
- BRA lab2
- lab1:
- LEA crctab(PC),A6
- MOVEQ #0,D7
- MOVE.W D2,D7
- ASR.L #$8,D7
- AND.L #$FF,D7
- MOVEQ #0,D6
- MOVEQ #0,D5
- MOVE.L D7,D5
- LSL.L #1,D5
- MOVE.W 0(A6,D5.L),D6
- MOVEQ #0,D7
- MOVE.W D2,D7
- ASL.L #$8,D7
- EOR.L D7,D6
- MOVEQ #0,D7
- MOVE.B (A0)+,D7
- EOR.L D7,D6
- MOVE.W D6,D2
- lab2:
- MOVE.L D3,D7
- SUBQ.L #1,D3
- CMP.L #0,D7
- BGT.B lab1
-
- MOVEQ #0,D0
- MOVE.L D2,D0
- MOVEM.L (A7)+,D1-D7/A0-A6
- ENDPROC D0
-
-
- /* crctab calculated by Mark G. Mendel,
- Network Systems Corporation
- */
- crctab:
- INT $0000,$1021,$2042,$3063,$4084,$50A5,$60C6,$70E7
- INT $8108,$9129,$A14A,$B16B,$C18C,$D1AD,$E1CE,$F1EF
- INT $1231,$0210,$3273,$2252,$52B5,$4294,$72F7,$62D6
- INT $9339,$8318,$B37B,$A35A,$D3BD,$C39C,$F3FF,$E3DE
- INT $2462,$3443,$0420,$1401,$64E6,$74C7,$44A4,$5485
- INT $A56A,$B54B,$8528,$9509,$E5EE,$F5CF,$C5AC,$D58D
- INT $3653,$2672,$1611,$0630,$76D7,$66F6,$5695,$46B4
- INT $B75B,$A77A,$9719,$8738,$F7DF,$E7FE,$D79D,$C7BC
- INT $48C4,$58E5,$6886,$78A7,$0840,$1861,$2802,$3823
- INT $C9CC,$D9ED,$E98E,$F9AF,$8948,$9969,$A90A,$B92B
- INT $5AF5,$4AD4,$7AB7,$6A96,$1A71,$0A50,$3A33,$2A12
- INT $DBFD,$CBDC,$FBBF,$EB9E,$9B79,$8B58,$BB3B,$AB1A
- INT $6CA6,$7C87,$4CE4,$5CC5,$2C22,$3C03,$0C60,$1C41
- INT $EDAE,$FD8F,$CDEC,$DDCD,$AD2A,$BD0B,$8D68,$9D49
- INT $7E97,$6EB6,$5ED5,$4EF4,$3E13,$2E32,$1E51,$0E70
- INT $FF9F,$EFBE,$DFDD,$CFFC,$BF1B,$AF3A,$9F59,$8F78
- INT $9188,$81A9,$B1CA,$A1EB,$D10C,$C12D,$F14E,$E16F
- INT $1080,$00A1,$30C2,$20E3,$5004,$4025,$7046,$6067
- INT $83B9,$9398,$A3FB,$B3DA,$C33D,$D31C,$E37F,$F35E
- INT $02B1,$1290,$22F3,$32D2,$4235,$5214,$6277,$7256
- INT $B5EA,$A5CB,$95A8,$8589,$F56E,$E54F,$D52C,$C50D
- INT $34E2,$24C3,$14A0,$0481,$7466,$6447,$5424,$4405
- INT $A7DB,$B7FA,$8799,$97B8,$E75F,$F77E,$C71D,$D73C
- INT $26D3,$36F2,$0691,$16B0,$6657,$7676,$4615,$5634
- INT $D94C,$C96D,$F90E,$E92F,$99C8,$89E9,$B98A,$A9AB
- INT $5844,$4865,$7806,$6827,$18C0,$08E1,$3882,$28A3
- INT $CB7D,$DB5C,$EB3F,$FB1E,$8BF9,$9BD8,$ABBB,$BB9A
- INT $4A75,$5A54,$6A37,$7A16,$0AF1,$1AD0,$2AB3,$3A92
- INT $FD2E,$ED0F,$DD6C,$CD4D,$BDAA,$AD8B,$9DE8,$8DC9
- INT $7C26,$6C07,$5C64,$4C45,$3CA2,$2C83,$1CE0,$0CC1
- INT $EF1F,$FF3E,$CF5D,$DF7C,$AF9B,$BFBA,$8FD9,$9FF8
- INT $6E17,$7E36,$4E55,$5E74,$2E93,$3EB2,$0ED1,$1EF0
- INT $0
-